var fs = require('fs');
var assert = require('assert');
var zlib = require('zlib');


var readableStream = fs.createReadStream('xyj.txt');
// var data = '';
// var num = 0
// var chunk;

// readableStream.setEncoding('utf8');

// readableStream.on('data', function (chunk) {
//   data += chunk;
//   console.log(num++, 'data')
// });
// ------
// readableStream.on('readable', function () {
//   while ((chunk = readableStream.read()) !== null) {
//     data += chunk;
//     console.log(num++, 'readable')    
//   }
// });

// readableStream.on('end', function () {
//   // console.log(data);
// });

// -----------------------------------------------------------

// var readable = readableStream
// readable.setEncoding('utf8');

// readable.on('data', function (chunk) {
//   console.log('读取%d字节的数据', chunk.length);
//   readable.pause();
//   console.log('接下来的1秒内不读取数据');
//   setTimeout(function () {
//     console.log('数据恢复读取');
//     readable.resume();
//   }, 1000);
//   assert.equal(typeof chunk, 'string');
//   console.log('got %d characters of string data', chunk.length);
// });


// ------------------------------------------------------------------

// var input = fs.createReadStream('xyj.txt');
// var output = fs.createWriteStream('./1.txt', {
//   encoding: 'utf8'
// });
// var num = 0
// input.on('data', function (d) {
//   output.write(d);
//   console.log('write', num++)
// });
// input.on('error', function (err) {
//   throw err;
// });
// input.on('end', function () {
//   output.end();
//   console.log('end')
// });
// -------
// input.pipe(output);


// -------------------

// fs.createReadStream('xyj.txt')
//   .pipe(zlib.createGunzip())
//   .pipe(fs.createWriteStream('output.txt'));


var stream = require('stream');
var Stream = stream.Stream;
var ws = new Stream;
ws.writable = true;
ws.write = function (data) {
  console.log("input=" + data);
}
ws.end = function (data) {
  console.log("bye");
}
process.stdin.pipe(ws);
